home *** CD-ROM | disk | FTP | other *** search
/ Network Supervisor's Toolkit / Network Supervisor's Toolkit.iso / tools / nwtp06 / volstat.pas < prev    next >
Pascal/Delphi Source File  |  1996-07-10  |  4KB  |  111 lines

  1. {$X+,B-,V-} {essential compiler directives}
  2.  
  3. program volstat;
  4.  
  5. { Example for the nwFile unit / NwTP 0.6 API. (c) 1993,1995, R.Spronk }
  6.  
  7. { Purpose: Lists all volume information for each volume on all
  8.            servers logged in to. If used with the parameter 'c',
  9.            the volume information will be displayed in a condensed
  10.            form and will be updated every 5 seconds.
  11.  
  12. Tests the following functions in the nwDir Unit:
  13.  
  14.  GetVolumeUsage
  15.  GetVolumeName
  16.  GetVolumeNumber
  17.  
  18.  
  19. (3410)  Thu 10 Feb 94 11:24
  20. By: Frank Van.Wensveen
  21. To: All
  22. Re: MULTISERVER VOLINFO
  23. St:
  24. ------------------------------------------------------------
  25. Ik zoek z.s.m. een utility waarmee ik de volspace van meerdere
  26. servers tegelijk in de gaten kan houden. Een soort multi-server
  27. VolInfo dus. Er zijn pakketten om dat heel mooi te doen (ik heb
  28. er zelfs een ter evaluatie liggen momenteel) maar ik zoek nu
  29. even snel (want de nood is hoog) iets eenvoudigs.
  30.  
  31. FVW
  32.  
  33. ---
  34.  * Origin: * NGN Point-Service -31-4752-6190 * (2:512/250) }
  35.  
  36. Uses Crt,nwMisc,nwBindry,nwConn,nwFile;
  37.  
  38. CONST testing=TRUE;
  39.  
  40. Var volNbr:Byte;
  41.     volumeName:String;
  42.     volInfo:TvolUsage;
  43.     cont:Boolean;
  44.     ConnId,OldConnId:Byte;
  45.     ServerName:string;
  46.     version:word;
  47.  
  48. Begin
  49. If NOT (IsShellLoaded and IsUserLoggedOn)
  50.  then begin
  51.       writeln('VolStat requires:');
  52.       writeln('  -The shell to be loaded;');
  53.       writeln('  -You to be logged in.');
  54.       halt(1);
  55.       end;
  56.  
  57. GetNWversion(version);
  58. if version<300
  59.  then begin
  60.       writeln('Netware 3.x only.');
  61.       halt(1);
  62.       end;
  63.  
  64. cont:=(ParamCount>0) and ((pos('c',paramstr(1))>0) or (pos('C',paramStr(1))>0));
  65.  
  66. GetPreferredConnectionId(OldConnId);
  67. REPEAT
  68.  clrscr;
  69.  For ConnId:=1 to MaxServers
  70.   do begin
  71.      IF GetFileServerName(connId,ServerName)
  72.       then begin
  73.            SetPreferredConnectionId(connId);
  74.            volNbr:=0;
  75.            While volNbr<32
  76.            do begin
  77.  
  78.               If GetVolumeUsage(volNbr,volInfo)
  79.                then with volInfo
  80.                      do begin
  81.                         if cont { condensed output }
  82.                          then begin
  83.                               writeln('\\'+Servername+'\'+VolumeName);
  84.                               writeln('  VS: ',totalblocks*(sectorsPerBlock div 2),' ',freeblocks*(sectorsperBlock div 2),' '+
  85.                                       'DE: ',totalDirentries,' ',AvailDirEntries);
  86.                               end
  87.                          else begin { normal output }
  88.                               writeln;
  89.                               writeln('Servername  : ',ServerName);
  90.                               writeln('Volumenumber: ',volNbr);
  91.                               writeln('Volume name : ',volumeName);
  92.                               writeln('Blocksize   : ',SectorsPerBlock * 512,' bytes.');
  93.                               writeln('Total blocks: ',totalblocks,' (=',(totalblocks *  (sectorsPerBlock div 2)),' Kb.)');
  94.                               writeln('Free blocks : ',freeblocks,' (=',(freeblocks * (sectorsPerBlock div 2)),' Kb.)');
  95.                               writeln('Purgable blocks : ',purgableblocks,' (=',
  96.                                        purgableblocks * (sectorsPerBlock div 2),' Kb.)');
  97.                               writeln('TotalDirEntries : ',totalDirEntries);
  98.                               writeln('Available DE    : ',availDirEntries);
  99.                               end;
  100.                         end;
  101.  
  102.               inc(volNbr);
  103.               end;
  104.            end;
  105.      end;
  106. if cont
  107.  then delay(5000); { 5 second interval }
  108. UNTIL KeyPressed or (not cont);
  109.  
  110. SetPreferredConnectionId(OldConnId);
  111. end.